1. Field of the Invention
The present invention relates to updating information shared between one or more bus devices in a computer system, and more particularly, to a system for shadowing registers of these devices.
2. Description of the Related Art
Personal computers are constantly evolving to provide the user with the highest performance available at the lowest cost. Performance improvements in the microprocessor and memory systems have resulted in computers so powerful that they are now capable of performing tasks that before could only be performed by large mainframe computers. Technological change is especially exemplified in the area of portable computers where power consumption efficiency is balanced against features, cost, size, weight and performance. Achieving this balance is especially challenging since many computer users demand the portable computer to provide nothing less than what a desktop unit can provide. The term "portable computers" is used broadly here to denote the class of computers powered by battery or solar power. Those familiar with portable computers will recognize labels such as portable, luggable, laptop, notebook and handheld, which are used to designate certain marketing segments of the larger portable computer market.
Many options are available to the computer system designer. While designing around the highest performance processor available will go far towards providing a high performance product, in today's competitive market that is not enough. The processor must be supported by high performance components, including a high performance expansion bus. Several standardized expansion buses are available to the system designer, including the ISA (Industry Standard Architecture) bus and the EISA (Extended Industry Standard Architecture) bus.
For the system bus, a high performance bus such as the Peripheral Component Interconnect (PCI) bus or the EISA bus is used. The three above-described buses are familiar to those skilled in the art.
Design choices also involve implementing certain special features of the computer that distinguish one manufacturer's computer from a competitor's. In the portable computer market this is especially challenging since added features can cause increased size and weight. For example, since software can require large amounts of storage, a high capacity hard disk drive is often desirable. However, such high capacity disk drives are usually larger and heavier than desirable for a portable computer. It is also desirable to have the ability to add functionality to the portable computer using expansion hardware. However, providing integral expansion bays compromises the small size.
One known method of providing additional features without sacrificing size and weight is through the use of an expansion base unit. An expansion base unit is a non-portable unit that typically operates from AC power and resides on a user's desktop. When the user is working at the desk, the portable computer plugs into the expansion base unit, which then provides the added functionality. The expansion base unit may include a network interface unit for connecting to a local area network, one or more high capacity disk drives, a floppy drive and other peripherals.
Typically, in a computer system having a laptop computer unit and an expansion base unit, information regarding floppy disk drive selects, motor selects and status bits are stored in floppy disk drive control registers. Such a computer system, however, may have two sets of these registers, one set located in a floppy drive controller of the laptop unit and one set located in a floppy drive controller of the expansion base unit. To ensure system compatibility the floppy disk drive registers of the laptop unit would typically have the same address as the corresponding registers of the expansion base unit.
Thus, these bus devices must have various registers that share common data. A problem occurs when the data in one of these registers is updated because registers sharing the same address should contain the same data.
Reflecting the contents of one register in another register is known as "shadowing." Data in a "shadowed" register is shadowed by one or more "shadowing" registers. One way to shadow a register is to perform bus write operations to every shadowing register when the shadowed register is updated with new data. However, as noted above, both the shadowed and the shadowing floppy disk drive registers should share a common address. The data is transferred to each set of floppy drive registers through an associated bridge circuit. Therefore, a problem arises in writing to both sets of floppy drive registers as the bridge circuits may not concurrently be able to transfer the data to the registers.